<?php

namespace app\server\notice\model;

use app\common\model\Config;
use PHPMailer\PHPMailer\PHPMailer;

/**
 * 发送邮件模型
 *
 * Class Ems
 * @package app\server\notice\model
 */
class Ems
{

    /**
     * 发送邮件
     *
     * @param string $to
     * @param string $subject
     * @param string $body
     * @return bool|string
     */
    public function index(string $to, string $subject, string $body)
    {

        $mail = new PHPMailer();

        try {
            // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
            $mail->SMTPDebug = Config::get('debug', 'ems');
            // 使用smtp鉴权方式发送邮件
            $mail->isSMTP();
            // smtp需要鉴权 这个必须是true
            $mail->SMTPAuth   = true;
            // 服务器地址
            $mail->Host       = Config::get('host', 'ems');
            // smtp登陆的账号
            $mail->Username   = Config::get('username', 'ems');
            // 登录密码
            $mail->Password   = Config::get('password', 'ems');
            // 设置使用ssl加密方式登录鉴权
            $mail->SMTPSecure = 'ssl';
            // 设置ssl连接smtp服务器的远程服务器端口号
            $mail->Port       = 465;
            $mail->CharSet = 'UTF-8';
            $mail->setFrom(Config::get('username', 'ems'), Config::get('from_name', 'ems'));
            $mail->addAddress($to);
            // Content
            $mail->isHTML(true);
            $mail->Subject = $subject;
            $mail->Body    = $body;
            return $mail->send();

        } catch (\Exception $e) {
            return $mail->ErrorInfo;
        }
    }
}
